A content addressable memory (CAM) device is a storage device having an array of memory cells that can be instructed to compare the specific pattern of a comparand word with data words stored in corresponding rows of the array. During a compare operation, a comparand word is provided to the CAM array and compared with all the CAM words. For each CAM word that matches the comparand word, a corresponding match line is asserted to indicate the match result. If any of the match lines are asserted, a match flag is asserted to indicate the match condition, and a priority encoder determines the match address or index of the highest priority entry in the CAM array. The address may be used to access associative data stored in an associated memory such as, for example, random access memory (RAM).
It may be desirable to read the matching data resulting from the compare operation from the CAM array. Typically, the match address generated by the priority encoder is provided back to the CAM array as a read address during a subsequent read operation to retrieve the matching data from the CAM array. However, using a separate read operation to retrieve matching data from a CAM device requires additional clock cycles, and therefore may undesirably degrade performance of the CAM device. Thus, it would be desirable for a CAM device to more quickly output matching data resulting from a compare operation.
Like reference numerals refer to corresponding parts throughout the drawing figures.